#COMPILE EXE #DIM ALL #INCLUDE ONCE "WIN32API.INC" #INCLUDE ONCE "REGISTRY.INC" #INCLUDE ONCE "RESOURCE.INC" #INCLUDE ONCE "APPDATA.INC" #RESOURCE "VRE.PBR" '------------------------------------------------------------------------------ %IDC_IMAGE1 = 1001 %IDC_LABEL1 = 1002 %IDC_LABEL2 = 1003 %IDC_BUTTON1 = 1004 %IDC_IMAGE2 = 1005 '------------------------------------------------------------------------------ %READY_TO_INSTALL = 6 %MAGNIFYING_GLASS = 22 %HELP_ICO = 23 %WARNING_ICO = 53 %REPLACE_FILE = 132 %RETRY = 238 %ALL_GOOD = 41 '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION PBMAIN () AS LONG LOCAL hDlg AS DWORD LOCAL lRes AS LONG DIALOG NEW PIXELS, 0, "VLC Rotate", , , 360, 90, _ %DS_MODALFRAME OR %WS_CAPTION OR %WS_POPUP OR %WS_SYSMENU, TO hDlg DIALOG SET ICON hDlg, "ICO1" CONTROL ADD IMAGE, hDlg, %IDC_IMAGE1, "", 8, 4, 48, 48 CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "", 70, 8, 250, 16 CONTROL ADD LABEL, hDlg, %IDC_LABEL2, "", 70, 32, 250, 16 CONTROL ADD BUTTON, hDlg, %IDC_BUTTON1, "INSTALL ROTATE EXTENSION", 8, 56, 320, 24 CONTROL ADD IMAGE, hDlg, %IDC_IMAGE2, "", 334, 60, 16, 16, %SS_NOTIFY DIALOG SHOW MODAL hDlg, CALL MainProc TO lRes END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ SUB InstallExtensions() LOCAL ff AS LONG KILL RoamingAppData() + "\vlc\lua\extensions\Rotate+90°.lua" KILL RoamingAppData() + "\vlc\lua\extensions\Rotate-90°.lua" ff = FREEFILE OPEN RoamingAppData() + "\vlc\lua\extensions\Rotate+90°.lua" FOR BINARY AS #ff PUT$ #ff, RCDATA$("RCW") CLOSE #ff ff = FREEFILE OPEN RoamingAppData() + "\vlc\lua\extensions\Rotate-90°.lua" FOR BINARY AS #ff PUT$ #ff, RCDATA$("RCCW") CLOSE #ff END SUB '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION Exist(BYVAL fileOrFolder AS STRING) AS LONG LOCAL Dummy& Dummy& = GETATTR(fileOrFolder) FUNCTION = (ERRCLEAR = 0) END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ SUB SetIco (BYVAL hDlg AS DWORD, BYVAL hCtl AS LONG, BYVAL ico AS LONG, BYVAL xy AS LONG) LOCAL hLib AS DWORD LOCAL hIcon AS DWORD hLib = LoadLibrary("shell32.dll") hIcon = LoadImage(hLib, BYVAL ico+1, %IMAGE_ICON, xy, xy, 0) SendDlgItemMessage hDlg, hCtl, %STM_SETIMAGE, %IMAGE_ICON, hIcon freelibrary hLib END SUB '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ CALLBACK FUNCTION MainProc() STATIC VLCPath AS STRING STATIC ovw AS LONG SELECT CASE AS LONG CB.MSG CASE %WM_INITDIALOG ' Initialization handler SetIco CB.HNDL, %IDC_IMAGE2, %HELP_ICO, 16 ovw = 0 ' Get VLC path from registry LET VlcPath = GETREGVALUE(%HKEY_LOCAL_MACHINE, "SOFTWARE\VideoLAN\VLC", "") IF VlcPath = "" THEN SetIco CB.HNDL, %IDC_IMAGE1, %MAGNIFYING_GLASS, 48 CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "VLC was not detected on your system." CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "Install VLC then try again." CONTROL DISABLE CB.HNDL, %IDC_BUTTON1 ELSE SetIco CB.HNDL, %IDC_IMAGE1, %READY_TO_INSTALL, 48 CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "VLC was detected on your system." CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "Ready to install the extension." CONTROL ENABLE CB.HNDL, %IDC_BUTTON1 END IF CASE %WM_COMMAND SELECT CASE AS LONG CB.CTL CASE %IDC_BUTTON1 IF CB.CTLMSG = %BN_CLICKED OR CB.CTLMSG = 1 THEN IF ISFALSE ovw THEN ' Extension detected > already installed IF Exist(RoamingAppData() + "\vlc\lua\extensions\Rotate+90°.lua") _ OR Exist(RoamingAppData() + "\vlc\lua\extensions\Rotate-90°.lua") THEN ovw = -1 SetIco CB.HNDL, %IDC_IMAGE1, %REPLACE_FILE, 48 CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "Extension was already installed previously." CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "Replace it ?" CONTROL SET TEXT CB.HNDL, %IDC_BUTTON1, "FORCE-INSTALL EXTENSION (OVERWRITE)" EXIT FUNCTION END IF END IF ' Extension not detected -or- user asks to overwrite > install it InstallExtensions() ' Extension correctly installed IF Exist(RoamingAppData() + "\vlc\lua\extensions\Rotate+90°.lua") _ OR Exist(RoamingAppData() + "\vlc\lua\extensions\Rotate-90°.lua") THEN SetIco CB.HNDL, %IDC_IMAGE1, %ALL_GOOD, 48 CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "Extension correctly installed. Please restart VLC." CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "You can now rotate videos via View > Rotate..." CONTROL DISABLE CB.HNDL, %IDC_BUTTON1 ' Problem during installation ELSE SetIco CB.HNDL, %IDC_IMAGE1, %WARNING_ICO, 48 CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "There was a problem installing the extension !" CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "You can try again or contact the author." END IF END IF CASE %IDC_IMAGE2 IF CB.CTLMSG = %BN_CLICKED OR CB.CTLMSG = 1 THEN ShellExecute %NULL, "open", "http://mougino.free.fr/", "", "", %SW_SHOW END IF END SELECT END SELECT END FUNCTION '------------------------------------------------------------------------------